<!doctype html>


<html>
<head>
  <link rel="shortcut icon" href="static/images/favicon.ico" type="image/x-icon">
  <title>MessageFormat (Closure Library API Documentation - JavaScript)</title>
  <link rel="stylesheet" href="static/css/base.css">
  <link rel="stylesheet" href="static/css/doc.css">
  <link rel="stylesheet" href="static/css/sidetree.css">
  <link rel="stylesheet" href="static/css/prettify.css">

  <script>
     var _staticFilePath = "static/";
     var _typeTreeName = "goog";
     var _fileTreeName = "Source";
  </script>

  <script src="static/js/doc.js">
  </script>

  <script type="text/javascript" src="//www.google.com/jsapi"></script>
  <script type="text/javascript">
     google.load("visualization", "1", {packages:["orgchart"]});
     var _loadingVisualizations = true;
  </script>

  <meta charset="utf8">
</head>

<body onload="grokdoc.onLoad();">

<div id="header">
  <div class="g-section g-tpl-50-50 g-split">
    <div class="g-unit g-first">
      <a id="logo" href="index.html">Closure Library API Documentation</a>
    </div>

    <div class="g-unit">
      <div class="g-c">
        <strong>Go to class or file:</strong>
        <input type="text" id="ac">
      </div>
    </div>
  </div>
</div>





<div class="colmask rightmenu">
<div class="colleft">
    <div class="col1">
      <!-- Column 1 start -->

<div id="title">
        <span class="fn">i18n.MessageFormat</span>
        <span>Extends</span>
        <span class="fn-name">
          Object
        </span>
</div>

<div class="g-section g-tpl-75-25">
  <div class="g-unit g-first" id="description">
    Constructor of MessageFormat.
  </div>


        <div class="g-unit" id="useful-links">
          <div class="title">Useful links</div>
          <ol>
            <li><a href="closure_goog_i18n_messageformat.js.source.html"><span class='source-code-link'>Source Code</span></a></li>
            <li><a href="http://code.google.com/p/closure-library/source/browse/closure/goog/i18n/messageformat.js">Git</a></li>
          </ol>
        </div>
</div>






<h2 class="g-first">Inheritance</h2>
<div class='gviz-org-chart-container goog-inline-block'>
<table class='gviz-org-chart' style='display:none'>
  <tr><td>goog.i18n.MessageFormat</td><td></td></tr>
</table>
</div>
<div class='gviz-org-chart-container goog-inline-block'>
<table class='gviz-org-chart' style='display:none'>
</table>
</div>




  <h2>Constructor</h2>
      <div class="fn-constructor">
    goog.i18n.MessageFormat(<span><span class="arg">pattern</span></span>)
  </div>

   <h3>Parameters</h3>






<table class="horiz-rule">
     
   <tr class="even">
     <td>
        <span class="entryName">pattern</span>
        : <div class="fullType"><span class="type"><a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/String">string</a></span></div>
        <div class="entryOverview">The pattern we parse and apply positional parameters to.</div>
     </td>
   </tr>
  </table>


<h2>Instance Methods</h2>


  <div class="legend">
        <span class="key publickey"></span><span>Public</span>
        <span class="key protectedkey"></span><span>Protected</span>
        <span class="key privatekey"></span><span>Private</span>
  </div>







<div>
       <div class="desc">
         Defined in
         <span class="fn-name">
            <a href="class_goog_i18n_MessageFormat.html">
              goog.i18n.MessageFormat
            </a>
         </span>
       </div>






<div class="section">
  <table class="horiz-rule">


     <tr class="even entry private">
       <td class="access"></td>






  <td>
    <a name="goog.i18n.MessageFormat.prototype.buildPlaceholder_"></a>


     <div class="arg">
       <img align="left" src="static/images/blank.gif">

        <span class="entryName">buildPlaceholder_<span class="args">(<span class="arg">literals</span>)</span>
        </span>
        &#8658; <div class="fullType"><span class="type"><a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/String">string</a></span></div>
      </div>


     <div class="entryOverview">
       Builds a placeholder from the last index of the array.
     </div>


    <! -- Method details -->
    <div class="entryDetails">

      <div class="detailsSection">
        <b>Arguments: </b>






<table class="horiz-rule">
     
   <tr class="even">
     <td>
        <span class="entryName">literals</span>
        : <div class="fullType"><span class="type"><a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Array">Array</a></span></div>
        <div class="entryOverview">All literals encountered during parse.</div>
     </td>
   </tr>
  </table>
      </div>
   
      <div class="detailsSection">
        <b>Returns:</b>&nbsp;<div class="fullType"><span class="type"><a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/String">string</a></span></div>&nbsp;
            \uFDDF_ + last index + _.
      </div>
  
    </div>
   
  </td>


  <td class="view-code">
     <a href="closure_goog_i18n_messageformat.js.source.html#line766">code &raquo;</a>
  </td>
     </tr>


     <tr class="odd entry private">
       <td class="access"></td>






  <td>
    <a name="goog.i18n.MessageFormat.prototype.extractParts_"></a>


     <div class="arg">
       <img align="left" src="static/images/blank.gif">

        <span class="entryName">extractParts_<span class="args">(<span class="arg">pattern</span>)</span>
        </span>
        &#8658; <div class="fullType">(<span class="type"><a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Array">Array</a></span>.&lt;(<span class="type"><a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Object">Object</a></span><span>&nbsp;|&nbsp;</span><span class="type">null</span>)&gt;<span>&nbsp;|&nbsp;</span><span class="type">null</span>)</div>
      </div>


     <div class="entryOverview">
       Breaks pattern into strings and top level {...} blocks.
     </div>


    <! -- Method details -->
    <div class="entryDetails">

      <div class="detailsSection">
        <b>Arguments: </b>






<table class="horiz-rule">
     
   <tr class="even">
     <td>
        <span class="entryName">pattern</span>
        : <div class="fullType"><span class="type"><a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/String">string</a></span></div>
        <div class="entryOverview">(sub)Pattern to be broken.</div>
     </td>
   </tr>
  </table>
      </div>
   
      <div class="detailsSection">
        <b>Returns:</b>&nbsp;<div class="fullType">(<span class="type"><a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Array">Array</a></span>.&lt;(<span class="type"><a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Object">Object</a></span><span>&nbsp;|&nbsp;</span><span class="type">null</span>)&gt;<span>&nbsp;|&nbsp;</span><span class="type">null</span>)</div>&nbsp;
            Each item is {type, value}.
      </div>
  
    </div>
   
  </td>


  <td class="view-code">
     <a href="closure_goog_i18n_messageformat.js.source.html#line455">code &raquo;</a>
  </td>
     </tr>


     <tr class="even entry public">
       <td class="access"></td>






  <td>
    <a name="goog.i18n.MessageFormat.prototype.format"></a>


     <div class="arg">
       <img align="left" src="static/images/blank.gif">

        <span class="entryName">format<span class="args">(<span class="arg">namedParameters</span>)</span>
        </span>
        &#8658; <div class="fullType"><span class="type"><a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/String">string</a></span></div>
      </div>


     <div class="entryOverview">
       Formats a message, treating '#' with special meaning representing
the number (plural_variable - offset).
     </div>


    <! -- Method details -->
    <div class="entryDetails">

      <div class="detailsSection">
        <b>Arguments: </b>






<table class="horiz-rule">
     
   <tr class="even">
     <td>
        <span class="entryName">namedParameters</span>
        : <div class="fullType"><span class="type"><a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Object">Object</a></span></div>
        <div class="entryOverview">Parameters that either influence the formatting or are used as actual data. I.e. in call to fmt.format({&amp;#39;NUM_PEOPLE&amp;#39;: 5, &amp;#39;NAME&amp;#39;: &amp;#39;Angela&amp;#39;}), object {&amp;#39;NUM_PEOPLE&amp;#39;: 5, &amp;#39;NAME&amp;#39;: &amp;#39;Angela&amp;#39;} holds positional parameters. 1st parameter could mean 5 people, which could influence plural format, and 2nd parameter is just a data to be printed out in proper position.</div>
     </td>
   </tr>
  </table>
      </div>
   
      <div class="detailsSection">
        <b>Returns:</b>&nbsp;<div class="fullType"><span class="type"><a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/String">string</a></span></div>&nbsp;
            Formatted message.
      </div>
  
    </div>
   
  </td>


  <td class="view-code">
     <a href="closure_goog_i18n_messageformat.js.source.html#line178">code &raquo;</a>
  </td>
     </tr>


     <tr class="odd entry private">
       <td class="access"></td>






  <td>
    <a name="goog.i18n.MessageFormat.prototype.formatBlock_"></a>


     <div class="arg">
       <img align="left" src="static/images/blank.gif">

        <span class="entryName">formatBlock_<span class="args">(<span class="arg">parsedPattern</span>,&nbsp;<span class="arg">namedParameters</span>,&nbsp;<span class="arg">ignorePound</span>,&nbsp;<span class="arg">result</span>)</span>
        </span>
      </div>


     <div class="entryOverview">
       Parses generic block and returns a formatted string.
     </div>


    <! -- Method details -->
    <div class="entryDetails">

      <div class="detailsSection">
        <b>Arguments: </b>






<table class="horiz-rule">
     
   <tr class="even">
     <td>
        <span class="entryName">parsedPattern</span>
        : <div class="fullType"><span class="type"><a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Array">Array</a></span>.&lt;<span class="type"><a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Object">Object</a></span>&gt;</div>
        <div class="entryOverview">Holds parsed tree.</div>
     </td>
   </tr>
     
   <tr class="odd">
     <td>
        <span class="entryName">namedParameters</span>
        : <div class="fullType"><span class="type"><a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Object">Object</a></span></div>
        <div class="entryOverview">Parameters that either influence the formatting or are used as actual data.</div>
     </td>
   </tr>
     
   <tr class="even">
     <td>
        <span class="entryName">ignorePound</span>
        : <div class="fullType"><span class="type"><a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Boolean">boolean</a></span></div>
        <div class="entryOverview">If true, treat '#' in plural messages as a literary character, else treat it as an ICU syntax character, resolving to the number (plural_variable - offset).</div>
     </td>
   </tr>
     
   <tr class="odd">
     <td>
        <span class="entryName">result</span>
        : <div class="fullType"><span class="type"><a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Array">Array</a></span>.&lt;<span class="type"><a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/String">string</a></span>&gt;</div>
        <div class="entryOverview">Each formatting stage appends its product to the result.</div>
     </td>
   </tr>
  </table>
      </div>
   
  
    </div>
   
  </td>


  <td class="view-code">
     <a href="closure_goog_i18n_messageformat.js.source.html#line248">code &raquo;</a>
  </td>
     </tr>


     <tr class="even entry public">
       <td class="access"></td>






  <td>
    <a name="goog.i18n.MessageFormat.prototype.formatIgnoringPound"></a>


     <div class="arg">
       <img align="left" src="static/images/blank.gif">

        <span class="entryName">formatIgnoringPound<span class="args">(<span class="arg">namedParameters</span>)</span>
        </span>
        &#8658; <div class="fullType"><span class="type"><a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/String">string</a></span></div>
      </div>


     <div class="entryOverview">
       Formats a message, treating '#' as literary character.
     </div>


    <! -- Method details -->
    <div class="entryDetails">

      <div class="detailsSection">
        <b>Arguments: </b>






<table class="horiz-rule">
     
   <tr class="even">
     <td>
        <span class="entryName">namedParameters</span>
        : <div class="fullType"><span class="type"><a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Object">Object</a></span></div>
        <div class="entryOverview">Parameters that either influence the formatting or are used as actual data. I.e. in call to fmt.format({&amp;#39;NUM_PEOPLE&amp;#39;: 5, &amp;#39;NAME&amp;#39;: &amp;#39;Angela&amp;#39;}), object {&amp;#39;NUM_PEOPLE&amp;#39;: 5, &amp;#39;NAME&amp;#39;: &amp;#39;Angela&amp;#39;} holds positional parameters. 1st parameter could mean 5 people, which could influence plural format, and 2nd parameter is just a data to be printed out in proper position.</div>
     </td>
   </tr>
  </table>
      </div>
   
      <div class="detailsSection">
        <b>Returns:</b>&nbsp;<div class="fullType"><span class="type"><a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/String">string</a></span></div>&nbsp;
            Formatted message.
      </div>
  
    </div>
   
  </td>


  <td class="view-code">
     <a href="closure_goog_i18n_messageformat.js.source.html#line193">code &raquo;</a>
  </td>
     </tr>


     <tr class="odd entry private">
       <td class="access"></td>






  <td>
    <a name="goog.i18n.MessageFormat.prototype.formatPluralOrdinalBlock_"></a>


     <div class="arg">
       <img align="left" src="static/images/blank.gif">

        <span class="entryName">formatPluralOrdinalBlock_<span class="args">(<span class="arg">parsedPattern</span>,&nbsp;<span class="arg">namedParameters</span>,&nbsp;<span class="arg">pluralSelector</span>,&nbsp;<span class="arg">ignorePound</span>,&nbsp;<span class="arg">result</span>)</span>
        </span>
      </div>


     <div class="entryOverview">
       Formats plural or selectordinal block. Only one option is selected and all #
are replaced.
     </div>


    <! -- Method details -->
    <div class="entryDetails">

      <div class="detailsSection">
        <b>Arguments: </b>






<table class="horiz-rule">
     
   <tr class="even">
     <td>
        <span class="entryName">parsedPattern</span>
        : <div class="fullType"><span class="type"><a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Object">Object</a></span></div>
        <div class="entryOverview">JSON object containing plural block info.</div>
     </td>
   </tr>
     
   <tr class="odd">
     <td>
        <span class="entryName">namedParameters</span>
        : <div class="fullType"><span class="type"><a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Object">Object</a></span></div>
        <div class="entryOverview">Parameters that either influence the formatting or are used as actual data.</div>
     </td>
   </tr>
     
   <tr class="even">
     <td>
        <span class="entryName">pluralSelector</span>
        : <div class="fullType"><span class="type">function (number): string</span></div>
        <div class="entryOverview">A select function from goog.i18n.pluralRules or goog.i18n.ordinalRules which determines which plural/ordinal form to use based on the input number's cardinality.</div>
     </td>
   </tr>
     
   <tr class="odd">
     <td>
        <span class="entryName">ignorePound</span>
        : <div class="fullType"><span class="type"><a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Boolean">boolean</a></span></div>
        <div class="entryOverview">If true, treat '#' in plural messages as a literary character, else treat it as an ICU syntax character, resolving to the number (plural_variable - offset).</div>
     </td>
   </tr>
     
   <tr class="even">
     <td>
        <span class="entryName">result</span>
        : <div class="fullType"><span class="type"><a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Array">Array</a></span>.&lt;<span class="type"><a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/String">string</a></span>&gt;</div>
        <div class="entryOverview">Each formatting stage appends its product to the result.</div>
     </td>
   </tr>
  </table>
      </div>
   
  
    </div>
   
  </td>


  <td class="view-code">
     <a href="closure_goog_i18n_messageformat.js.source.html#line356">code &raquo;</a>
  </td>
     </tr>


     <tr class="even entry private">
       <td class="access"></td>






  <td>
    <a name="goog.i18n.MessageFormat.prototype.formatSelectBlock_"></a>


     <div class="arg">
       <img align="left" src="static/images/blank.gif">

        <span class="entryName">formatSelectBlock_<span class="args">(<span class="arg">parsedPattern</span>,&nbsp;<span class="arg">namedParameters</span>,&nbsp;<span class="arg">ignorePound</span>,&nbsp;<span class="arg">result</span>)</span>
        </span>
      </div>


     <div class="entryOverview">
       Formats select block. Only one option is selected.
     </div>


    <! -- Method details -->
    <div class="entryDetails">

      <div class="detailsSection">
        <b>Arguments: </b>






<table class="horiz-rule">
     
   <tr class="even">
     <td>
        <span class="entryName">parsedPattern</span>
        : <div class="fullType"><span class="type"><a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Object">Object</a></span></div>
        <div class="entryOverview">JSON object containing select block info.</div>
     </td>
   </tr>
     
   <tr class="odd">
     <td>
        <span class="entryName">namedParameters</span>
        : <div class="fullType"><span class="type"><a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Object">Object</a></span></div>
        <div class="entryOverview">Parameters that either influence the formatting or are used as actual data.</div>
     </td>
   </tr>
     
   <tr class="even">
     <td>
        <span class="entryName">ignorePound</span>
        : <div class="fullType"><span class="type"><a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Boolean">boolean</a></span></div>
        <div class="entryOverview">If true, treat '#' in plural messages as a literary character, else treat it as an ICU syntax character, resolving to the number (plural_variable - offset).</div>
     </td>
   </tr>
     
   <tr class="odd">
     <td>
        <span class="entryName">result</span>
        : <div class="fullType"><span class="type"><a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Array">Array</a></span>.&lt;<span class="type"><a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/String">string</a></span>&gt;</div>
        <div class="entryOverview">Each formatting stage appends its product to the result.</div>
     </td>
   </tr>
  </table>
      </div>
   
  
    </div>
   
  </td>


  <td class="view-code">
     <a href="closure_goog_i18n_messageformat.js.source.html#line321">code &raquo;</a>
  </td>
     </tr>


     <tr class="odd entry private">
       <td class="access"></td>






  <td>
    <a name="goog.i18n.MessageFormat.prototype.formatSimplePlaceholder_"></a>


     <div class="arg">
       <img align="left" src="static/images/blank.gif">

        <span class="entryName">formatSimplePlaceholder_<span class="args">(<span class="arg">parsedPattern</span>,&nbsp;<span class="arg">namedParameters</span>,&nbsp;<span class="arg">result</span>)</span>
        </span>
      </div>


     <div class="entryOverview">
       Formats simple placeholder.
     </div>


    <! -- Method details -->
    <div class="entryDetails">

      <div class="detailsSection">
        <b>Arguments: </b>






<table class="horiz-rule">
     
   <tr class="even">
     <td>
        <span class="entryName">parsedPattern</span>
        : <div class="fullType"><span class="type"><a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Object">Object</a></span></div>
        <div class="entryOverview">JSON object containing placeholder info.</div>
     </td>
   </tr>
     
   <tr class="odd">
     <td>
        <span class="entryName">namedParameters</span>
        : <div class="fullType"><span class="type"><a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Object">Object</a></span></div>
        <div class="entryOverview">Parameters that are used as actual data.</div>
     </td>
   </tr>
     
   <tr class="even">
     <td>
        <span class="entryName">result</span>
        : <div class="fullType"><span class="type"><a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Array">Array</a></span>.&lt;<span class="type"><a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/String">string</a></span>&gt;</div>
        <div class="entryOverview">Each formatting stage appends its product to the result.</div>
     </td>
   </tr>
  </table>
      </div>
   
  
    </div>
   
  </td>


  <td class="view-code">
     <a href="closure_goog_i18n_messageformat.js.source.html#line294">code &raquo;</a>
  </td>
     </tr>


     <tr class="even entry private">
       <td class="access"></td>






  <td>
    <a name="goog.i18n.MessageFormat.prototype.format_"></a>


     <div class="arg">
       <img align="left" src="static/images/blank.gif">

        <span class="entryName">format_<span class="args">(<span class="arg">namedParameters</span>,&nbsp;<span class="arg">ignorePound</span>)</span>
        </span>
        &#8658; <div class="fullType"><span class="type"><a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/String">string</a></span></div>
      </div>


     <div class="entryOverview">
       Formats a message.
     </div>


    <! -- Method details -->
    <div class="entryDetails">

      <div class="detailsSection">
        <b>Arguments: </b>






<table class="horiz-rule">
     
   <tr class="even">
     <td>
        <span class="entryName">namedParameters</span>
        : <div class="fullType"><span class="type"><a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Object">Object</a></span></div>
        <div class="entryOverview">Parameters that either influence the formatting or are used as actual data. I.e. in call to fmt.format({&amp;#39;NUM_PEOPLE&amp;#39;: 5, &amp;#39;NAME&amp;#39;: &amp;#39;Angela&amp;#39;}), object {&amp;#39;NUM_PEOPLE&amp;#39;: 5, &amp;#39;NAME&amp;#39;: &amp;#39;Angela&amp;#39;} holds positional parameters. 1st parameter could mean 5 people, which could influence plural format, and 2nd parameter is just a data to be printed out in proper position.</div>
     </td>
   </tr>
     
   <tr class="odd">
     <td>
        <span class="entryName">ignorePound</span>
        : <div class="fullType"><span class="type"><a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Boolean">boolean</a></span></div>
        <div class="entryOverview">If true, treat '#' in plural messages as a literary character, else treat it as an ICU syntax character, resolving to the number (plural_variable - offset).</div>
     </td>
   </tr>
  </table>
      </div>
   
      <div class="detailsSection">
        <b>Returns:</b>&nbsp;<div class="fullType"><span class="type"><a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/String">string</a></span></div>&nbsp;
            Formatted message.
      </div>
  
    </div>
   
  </td>


  <td class="view-code">
     <a href="closure_goog_i18n_messageformat.js.source.html#line213">code &raquo;</a>
  </td>
     </tr>


     <tr class="odd entry private">
       <td class="access"></td>






  <td>
    <a name="goog.i18n.MessageFormat.prototype.insertPlaceholders_"></a>


     <div class="arg">
       <img align="left" src="static/images/blank.gif">

        <span class="entryName">insertPlaceholders_<span class="args">(<span class="arg">pattern</span>)</span>
        </span>
        &#8658; <div class="fullType"><span class="type"><a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/String">string</a></span></div>
      </div>


     <div class="entryOverview">
       Replaces string literals with literal placeholders.
Literals are string of the form &amp;#39;}...&amp;#39;, &amp;#39;{...&amp;#39; and &amp;#39;#...&amp;#39; where ... is
set of characters not containing &amp;#39;
Builds a dictionary so we can recover literals during format phase.
     </div>


    <! -- Method details -->
    <div class="entryDetails">

      <div class="detailsSection">
        <b>Arguments: </b>






<table class="horiz-rule">
     
   <tr class="even">
     <td>
        <span class="entryName">pattern</span>
        : <div class="fullType"><span class="type"><a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/String">string</a></span></div>
        <div class="entryOverview">Pattern to clean up.</div>
     </td>
   </tr>
  </table>
      </div>
   
      <div class="detailsSection">
        <b>Returns:</b>&nbsp;<div class="fullType"><span class="type"><a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/String">string</a></span></div>&nbsp;
            Pattern with literals replaced with placeholders.
      </div>
  
    </div>
   
  </td>


  <td class="view-code">
     <a href="closure_goog_i18n_messageformat.js.source.html#line425">code &raquo;</a>
  </td>
     </tr>


     <tr class="even entry private">
       <td class="access"></td>






  <td>
    <a name="goog.i18n.MessageFormat.prototype.parseBlockType_"></a>


     <div class="arg">
       <img align="left" src="static/images/blank.gif">

        <span class="entryName">parseBlockType_<span class="args">(<span class="arg">pattern</span>)</span>
        </span>
        &#8658; <div class="fullType"><span class="type">goog.i18n.MessageFormat.BlockType_</span>.&lt;<span class="type"><a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Number">number</a></span>&gt;</div>
      </div>


     <div class="entryOverview">
       Detects which type of a block is the pattern.
     </div>


    <! -- Method details -->
    <div class="entryDetails">

      <div class="detailsSection">
        <b>Arguments: </b>






<table class="horiz-rule">
     
   <tr class="even">
     <td>
        <span class="entryName">pattern</span>
        : <div class="fullType"><span class="type"><a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/String">string</a></span></div>
        <div class="entryOverview">Content of the block.</div>
     </td>
   </tr>
  </table>
      </div>
   
      <div class="detailsSection">
        <b>Returns:</b>&nbsp;<div class="fullType"><span class="type">goog.i18n.MessageFormat.BlockType_</span>.&lt;<span class="type"><a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Number">number</a></span>&gt;</div>&nbsp;
            One of the block types.
      </div>
  
    </div>
   
  </td>


  <td class="view-code">
     <a href="closure_goog_i18n_messageformat.js.source.html#line547">code &raquo;</a>
  </td>
     </tr>


     <tr class="odd entry private">
       <td class="access"></td>






  <td>
    <a name="goog.i18n.MessageFormat.prototype.parseBlock_"></a>


     <div class="arg">
       <img align="left" src="static/images/blank.gif">

        <span class="entryName">parseBlock_<span class="args">(<span class="arg">pattern</span>)</span>
        </span>
        &#8658; <div class="fullType"><span class="type"><a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Array">Array</a></span>.&lt;<span class="type"><a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Object">Object</a></span>&gt;</div>
      </div>


     <div class="entryOverview">
       Parses generic block.
     </div>


    <! -- Method details -->
    <div class="entryDetails">

      <div class="detailsSection">
        <b>Arguments: </b>






<table class="horiz-rule">
     
   <tr class="even">
     <td>
        <span class="entryName">pattern</span>
        : <div class="fullType"><span class="type"><a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/String">string</a></span></div>
        <div class="entryOverview">Content of the block to parse.</div>
     </td>
   </tr>
  </table>
      </div>
   
      <div class="detailsSection">
        <b>Returns:</b>&nbsp;<div class="fullType"><span class="type"><a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Array">Array</a></span>.&lt;<span class="type"><a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Object">Object</a></span>&gt;</div>&nbsp;
            Subblocks marked as strings, select...
      </div>
  
    </div>
   
  </td>


  <td class="view-code">
     <a href="closure_goog_i18n_messageformat.js.source.html#line574">code &raquo;</a>
  </td>
     </tr>


     <tr class="even entry private">
       <td class="access"></td>






  <td>
    <a name="goog.i18n.MessageFormat.prototype.parseOrdinalBlock_"></a>


     <div class="arg">
       <img align="left" src="static/images/blank.gif">

        <span class="entryName">parseOrdinalBlock_<span class="args">(<span class="arg">pattern</span>)</span>
        </span>
        &#8658; <div class="fullType">(<span class="type"><a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Object">Object</a></span><span>&nbsp;|&nbsp;</span><span class="type">null</span>)</div>
      </div>


     <div class="entryOverview">
       Parses an ordinal type of a block and produces JSON object for it.
For example the input string:
&amp;#39;{FOO, selectordinal, one {Message A}other {Message B}}&amp;#39;
Should result in the output object:
{
argumentIndex: &amp;#39;FOO&amp;#39;,
argumentOffest: 0,
one: [ { type: 4, value: &amp;#39;Message A&amp;#39; } ],
other: [ { type: 4, value: &amp;#39;Message B&amp;#39; } ]
}
     </div>


    <! -- Method details -->
    <div class="entryDetails">

      <div class="detailsSection">
        <b>Arguments: </b>






<table class="horiz-rule">
     
   <tr class="even">
     <td>
        <span class="entryName">pattern</span>
        : <div class="fullType"><span class="type"><a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/String">string</a></span></div>
        <div class="entryOverview">Subpattern that needs to be parsed as plural pattern.</div>
     </td>
   </tr>
  </table>
      </div>
   
      <div class="detailsSection">
        <b>Returns:</b>&nbsp;<div class="fullType">(<span class="type"><a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Object">Object</a></span><span>&nbsp;|&nbsp;</span><span class="type">null</span>)</div>&nbsp;
            Object with select block info.
      </div>
  
    </div>
   
  </td>


  <td class="view-code">
     <a href="closure_goog_i18n_messageformat.js.source.html#line721">code &raquo;</a>
  </td>
     </tr>


     <tr class="odd entry private">
       <td class="access"></td>






  <td>
    <a name="goog.i18n.MessageFormat.prototype.parsePattern_"></a>


     <div class="arg">
       <img align="left" src="static/images/blank.gif">

        <span class="entryName">parsePattern_<span class="args">(<span class="arg">pattern</span>)</span>
        </span>
      </div>


     <div class="entryOverview">
       Parses input pattern into an array, for faster reformatting with
different input parameters.
Parsing is locale independent.
     </div>


    <! -- Method details -->
    <div class="entryDetails">

      <div class="detailsSection">
        <b>Arguments: </b>






<table class="horiz-rule">
     
   <tr class="even">
     <td>
        <span class="entryName">pattern</span>
        : <div class="fullType"><span class="type"><a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/String">string</a></span></div>
        <div class="entryOverview">MessageFormat pattern to parse.</div>
     </td>
   </tr>
  </table>
      </div>
   
  
    </div>
   
  </td>


  <td class="view-code">
     <a href="closure_goog_i18n_messageformat.js.source.html#line407">code &raquo;</a>
  </td>
     </tr>


     <tr class="even entry private">
       <td class="access"></td>






  <td>
    <a name="goog.i18n.MessageFormat.prototype.parsePluralBlock_"></a>


     <div class="arg">
       <img align="left" src="static/images/blank.gif">

        <span class="entryName">parsePluralBlock_<span class="args">(<span class="arg">pattern</span>)</span>
        </span>
        &#8658; <div class="fullType">(<span class="type"><a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Object">Object</a></span><span>&nbsp;|&nbsp;</span><span class="type">null</span>)</div>
      </div>


     <div class="entryOverview">
       Parses a plural type of a block and produces JSON object for it.
     </div>


    <! -- Method details -->
    <div class="entryDetails">

      <div class="detailsSection">
        <b>Arguments: </b>






<table class="horiz-rule">
     
   <tr class="even">
     <td>
        <span class="entryName">pattern</span>
        : <div class="fullType"><span class="type"><a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/String">string</a></span></div>
        <div class="entryOverview">Subpattern that needs to be parsed as plural pattern.</div>
     </td>
   </tr>
  </table>
      </div>
   
      <div class="detailsSection">
        <b>Returns:</b>&nbsp;<div class="fullType">(<span class="type"><a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Object">Object</a></span><span>&nbsp;|&nbsp;</span><span class="type">null</span>)</div>&nbsp;
            Object with select block info.
      </div>
  
    </div>
   
  </td>


  <td class="view-code">
     <a href="closure_goog_i18n_messageformat.js.source.html#line663">code &raquo;</a>
  </td>
     </tr>


     <tr class="odd entry private">
       <td class="access"></td>






  <td>
    <a name="goog.i18n.MessageFormat.prototype.parseSelectBlock_"></a>


     <div class="arg">
       <img align="left" src="static/images/blank.gif">

        <span class="entryName">parseSelectBlock_<span class="args">(<span class="arg">pattern</span>)</span>
        </span>
        &#8658; <div class="fullType">(<span class="type"><a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Object">Object</a></span><span>&nbsp;|&nbsp;</span><span class="type">null</span>)</div>
      </div>


     <div class="entryOverview">
       Parses a select type of a block and produces JSON object for it.
     </div>


    <! -- Method details -->
    <div class="entryDetails">

      <div class="detailsSection">
        <b>Arguments: </b>






<table class="horiz-rule">
     
   <tr class="even">
     <td>
        <span class="entryName">pattern</span>
        : <div class="fullType"><span class="type"><a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/String">string</a></span></div>
        <div class="entryOverview">Subpattern that needs to be parsed as select pattern.</div>
     </td>
   </tr>
  </table>
      </div>
   
      <div class="detailsSection">
        <b>Returns:</b>&nbsp;<div class="fullType">(<span class="type"><a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Object">Object</a></span><span>&nbsp;|&nbsp;</span><span class="type">null</span>)</div>&nbsp;
            Object with select block info.
      </div>
  
    </div>
   
  </td>


  <td class="view-code">
     <a href="closure_goog_i18n_messageformat.js.source.html#line621">code &raquo;</a>
  </td>
     </tr>


  </table>
</div>
</div>




<h2>Instance Properties</h2>







<div>
       <div class="desc">
         Defined in
         <span class="fn-name">
            <a href="class_goog_i18n_MessageFormat.html">
              goog.i18n.MessageFormat
            </a>
         </span>
       </div>






<div class="section">
  <table class="horiz-rule">


     <tr class="even entry private">
       <td class="access"></td>





  <a name="goog.i18n.MessageFormat.prototype.literals_"></a>

  <td>


     <div class="arg">
        <img align="left" src="static/images/blank.gif">

        <span class="entryName">literals_</span>
        : <div class="fullType"><span class="type"><a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Array">Array</a></span>.&lt;<span class="type"><a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/String">string</a></span>&gt;</div>
     </div>


     <div class="entryOverview">
       All encountered literals during parse stage. Indices tell us the order of
replacement.
     </div>

  </td>


  <td class="view-code">
     <a href="closure_goog_i18n_messageformat.js.source.html#line85">Code &raquo;</a>
  </td>
     </tr>


     <tr class="odd entry private">
       <td class="access"></td>





  <a name="goog.i18n.MessageFormat.prototype.numberFormatter_"></a>

  <td>


     <div class="arg">
        <img align="left" src="static/images/blank.gif">

        <span class="entryName">numberFormatter_</span>
        : <div class="fullType">(<span class="type"><a href="class_goog_i18n_NumberFormat.html">goog.i18n.NumberFormat</a></span><span>&nbsp;|&nbsp;</span><span class="type">null</span>)</div>
     </div>


     <div class="entryOverview">
       Locale aware number formatter.
     </div>

  </td>


  <td class="view-code">
     <a href="closure_goog_i18n_messageformat.js.source.html#line99">Code &raquo;</a>
  </td>
     </tr>


     <tr class="even entry private">
       <td class="access"></td>





  <a name="goog.i18n.MessageFormat.prototype.parsedPattern_"></a>

  <td>


     <div class="arg">
        <img align="left" src="static/images/blank.gif">

        <span class="entryName">parsedPattern_</span>
        : <div class="fullType"><span class="type"><a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Array">Array</a></span>.&lt;<span class="type"><a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Object">Object</a></span>&gt;</div>
     </div>


     <div class="entryOverview">
       Input pattern gets parsed into objects for faster formatting.
     </div>

  </td>


  <td class="view-code">
     <a href="closure_goog_i18n_messageformat.js.source.html#line92">Code &raquo;</a>
  </td>
     </tr>


  </table>
</div>
</div>










<div class="section">
  <table class="horiz-rule">


  </table>
</div>



<h2>Static Properties</h2>






<div class="section">
  <table class="horiz-rule">


     <tr class="even entry private">
       <td class="access"></td>





  <a name="goog.i18n.MessageFormat.LITERAL_PLACEHOLDER_"></a>

  <td>


     <div class="arg">
        <img align="left" src="static/images/blank.gif">

        <span class="entryNamespace">goog.i18n.MessageFormat.</span><span class="entryName">LITERAL_PLACEHOLDER_</span>
        : <div class="fullType"><span class="type"><a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/String">string</a></span></div>
     </div>


     <div class="entryOverview">
       Literal strings, including '', are replaced with \uFDDF_x_ for
parsing purposes, and recovered during format phase.
\uFDDF is a Unicode nonprinting character, not expected to be found in the
typical message.
     </div>

  </td>


  <td class="view-code">
     <a href="closure_goog_i18n_messageformat.js.source.html#line114">Code &raquo;</a>
  </td>
     </tr>


     <tr class="odd entry private">
       <td class="access"></td>





  <a name="goog.i18n.MessageFormat.ORDINAL_BLOCK_RE_"></a>

  <td>


     <div class="arg">
        <img align="left" src="static/images/blank.gif">

        <span class="entryNamespace">goog.i18n.MessageFormat.</span><span class="entryName">ORDINAL_BLOCK_RE_</span>
        : <div class="fullType">(<span class="type"><a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/RegExp">RegExp</a></span><span>&nbsp;|&nbsp;</span><span class="type">null</span>)</div>
     </div>


     <div class="entryOverview">
       A regular expression to parse the ordinal block, extracting the argument
index.
     </div>

  </td>


  <td class="view-code">
     <a href="closure_goog_i18n_messageformat.js.source.html#line529">Code &raquo;</a>
  </td>
     </tr>


     <tr class="even entry private">
       <td class="access"></td>





  <a name="goog.i18n.MessageFormat.OTHER_"></a>

  <td>


     <div class="arg">
        <img align="left" src="static/images/blank.gif">

        <span class="entryNamespace">goog.i18n.MessageFormat.</span><span class="entryName">OTHER_</span>
        : <div class="fullType"><span class="type"><a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/String">string</a></span></div>
     </div>


     <div class="entryOverview">
       Mandatory option in both select and plural form.
     </div>

  </td>


  <td class="view-code">
     <a href="closure_goog_i18n_messageformat.js.source.html#line148">Code &raquo;</a>
  </td>
     </tr>


     <tr class="odd entry private">
       <td class="access"></td>





  <a name="goog.i18n.MessageFormat.PLURAL_BLOCK_RE_"></a>

  <td>


     <div class="arg">
        <img align="left" src="static/images/blank.gif">

        <span class="entryNamespace">goog.i18n.MessageFormat.</span><span class="entryName">PLURAL_BLOCK_RE_</span>
        : <div class="fullType">(<span class="type"><a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/RegExp">RegExp</a></span><span>&nbsp;|&nbsp;</span><span class="type">null</span>)</div>
     </div>


     <div class="entryOverview">
       A regular expression to parse the plural block, extracting the argument
index and offset (if any).
     </div>

  </td>


  <td class="view-code">
     <a href="closure_goog_i18n_messageformat.js.source.html#line519">Code &raquo;</a>
  </td>
     </tr>


     <tr class="even entry private">
       <td class="access"></td>





  <a name="goog.i18n.MessageFormat.REGEX_DOUBLE_APOSTROPHE_"></a>

  <td>


     <div class="arg">
        <img align="left" src="static/images/blank.gif">

        <span class="entryNamespace">goog.i18n.MessageFormat.</span><span class="entryName">REGEX_DOUBLE_APOSTROPHE_</span>
        : <div class="fullType">(<span class="type"><a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/RegExp">RegExp</a></span><span>&nbsp;|&nbsp;</span><span class="type">null</span>)</div>
     </div>


     <div class="entryOverview">
       Regular expression for looking for '' in the message.
     </div>

  </td>


  <td class="view-code">
     <a href="closure_goog_i18n_messageformat.js.source.html#line164">Code &raquo;</a>
  </td>
     </tr>


     <tr class="odd entry private">
       <td class="access"></td>





  <a name="goog.i18n.MessageFormat.REGEX_LITERAL_"></a>

  <td>


     <div class="arg">
        <img align="left" src="static/images/blank.gif">

        <span class="entryNamespace">goog.i18n.MessageFormat.</span><span class="entryName">REGEX_LITERAL_</span>
        : <div class="fullType">(<span class="type"><a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/RegExp">RegExp</a></span><span>&nbsp;|&nbsp;</span><span class="type">null</span>)</div>
     </div>


     <div class="entryOverview">
       Regular expression for looking for string literals.
     </div>

  </td>


  <td class="view-code">
     <a href="closure_goog_i18n_messageformat.js.source.html#line156">Code &raquo;</a>
  </td>
     </tr>


     <tr class="even entry private">
       <td class="access"></td>





  <a name="goog.i18n.MessageFormat.SELECT_BLOCK_RE_"></a>

  <td>


     <div class="arg">
        <img align="left" src="static/images/blank.gif">

        <span class="entryNamespace">goog.i18n.MessageFormat.</span><span class="entryName">SELECT_BLOCK_RE_</span>
        : <div class="fullType">(<span class="type"><a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/RegExp">RegExp</a></span><span>&nbsp;|&nbsp;</span><span class="type">null</span>)</div>
     </div>


     <div class="entryOverview">
       A regular expression to parse the select block, extracting the argument
index.
     </div>

  </td>


  <td class="view-code">
     <a href="closure_goog_i18n_messageformat.js.source.html#line538">Code &raquo;</a>
  </td>
     </tr>


  </table>
</div>



<h2>Enumerations</h2>






<div class="section">
  <table class="horiz-rule">


     <tr class="even entry private">
       <td class="access"></td>





  <a name="goog.i18n.MessageFormat.BlockType_"></a>

  <td>


     <div class="arg">
        <img align="left" src="static/images/blank.gif">

        <span class="entryNamespace">goog.i18n.MessageFormat.</span><span class="entryName">BlockType_</span>
        : 
     </div>


     <div class="entryOverview">
       Block type.
     </div>

     <div class="entryDetails">
       <div class="detailsSection">
          <b>Constants:</b>
          <table class="horiz-rule">
            <tbody>
              <tr><td>
                <span class="entryName">
                  STRING
                </span>
                <div class="entryOverview">
                  <span class='nodesc'>No description.</span>
                </div>
             </td></tr>
              <tr><td>
                <span class="entryName">
                  PLURAL
                </span>
                <div class="entryOverview">
                  <span class='nodesc'>No description.</span>
                </div>
             </td></tr>
              <tr><td>
                <span class="entryName">
                  SIMPLE
                </span>
                <div class="entryOverview">
                  <span class='nodesc'>No description.</span>
                </div>
             </td></tr>
              <tr><td>
                <span class="entryName">
                  UNKNOWN
                </span>
                <div class="entryOverview">
                  <span class='nodesc'>No description.</span>
                </div>
             </td></tr>
              <tr><td>
                <span class="entryName">
                  SELECT
                </span>
                <div class="entryOverview">
                  <span class='nodesc'>No description.</span>
                </div>
             </td></tr>
              <tr><td>
                <span class="entryName">
                  ORDINAL
                </span>
                <div class="entryOverview">
                  <span class='nodesc'>No description.</span>
                </div>
             </td></tr>
           </tbody>
         </table>
       </div>
     </div>

  </td>


  <td class="view-code">
     <a href="closure_goog_i18n_messageformat.js.source.html#line133">Code &raquo;</a>
  </td>
     </tr>


     <tr class="odd entry private">
       <td class="access"></td>





  <a name="goog.i18n.MessageFormat.Element_"></a>

  <td>


     <div class="arg">
        <img align="left" src="static/images/blank.gif">

        <span class="entryNamespace">goog.i18n.MessageFormat.</span><span class="entryName">Element_</span>
        : 
     </div>


     <div class="entryOverview">
       Marks a string and block during parsing.
     </div>

     <div class="entryDetails">
       <div class="detailsSection">
          <b>Constants:</b>
          <table class="horiz-rule">
            <tbody>
              <tr><td>
                <span class="entryName">
                  STRING
                </span>
                <div class="entryOverview">
                  <span class='nodesc'>No description.</span>
                </div>
             </td></tr>
              <tr><td>
                <span class="entryName">
                  BLOCK
                </span>
                <div class="entryOverview">
                  <span class='nodesc'>No description.</span>
                </div>
             </td></tr>
           </tbody>
         </table>
       </div>
     </div>

  </td>


  <td class="view-code">
     <a href="closure_goog_i18n_messageformat.js.source.html#line122">Code &raquo;</a>
  </td>
     </tr>


  </table>
</div>
      <!-- Column 1 end -->
    </div>

        <div class="col2">
          <!-- Column 2 start -->
          <div class="col2-c">
            <h2 id="ref-head">Package i18n</h2>
            <div id="localView"></div>
          </div>

          <div class="col2-c">
            <h2 id="ref-head">Package Reference</h2>
            <div id="sideTypeIndex" rootPath="" current="i18n.MessageFormat"></div>
          </div>
          <!-- Column 2 end -->
        </div>
</div>
</div>

</body>
</html>
